/*
 * @Author: lichao 1246877006@qq.com
 * @Date: 2024-09-24 10:23:36
 * @LastEditors: lichao 1246877006@qq.com
 * @LastEditTime: 2024-09-24 10:45:22
 * @FilePath: \hello-algo\02迭代与递归\2.2.1迭代-for循环.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
/**
 * 迭代时一种重复执行某个任务的控制结构。
 * for 循环时最常见的迭代形式之一，适合在预先知道迭代次数时使用
 * 下面求和函数的操作数量与输入数据大小 n 成正比，或者说成线性关系
 * 时间复杂度描述的就是这个线性关系
 */

// for循环 累加求和
function forLoop(n) {
    let res = 0
    for (let i = 0; i < n; i++) {
        res += i
    }
    return res
}

// while循环 累加求和
function whileLoop(n) {
    let res = 0
    let i = 1
    while(i <= n) {
        res += i
        i++
    }
    return res
}

// 嵌套循环
function nestedForLoop() {
    let res = ''
    for(let i = 0; i <= n; i++) {
        for(let j = 0; j <= n; j++) {
            res += `(${i}, ${j})`
        }
    }
    return res
}
